#include<iostream>
#include<algorithm>
#include <vector>

using namespace std;
const int N = 2e5 + 10;


int n, m;
int a[N], b[N], c[N], cnt[N];
vector<int> nums;


int find(int x){
    return lower_bound(nums.begin(), nums.end(), x) - nums.begin();
}

int main(){
    ios::sync_with_stdio(false);
    cin.tie(nullptr);
    
    cin >> n;
    for(int i = 1; i <= n; i ++){
        cin >> a[i];
        nums.push_back(a[i]);
    } 
    
    sort(nums.begin(), nums.end());
    nums.erase(unique(nums.begin(), nums.end()), nums.end());
    for(int i = 1; i <= n; i ++){
        int idx = find(a[i]);
        // cout << "idx: " << idx << '\n';
        cnt[idx] ++;
    }
    
    // for(int i = 0; i <= 3; i ++) cout << cnt[i] << " ";
    // cout << '\n';
    
    cin >> m;
    
    for(int i = 1, x; i <= m; i ++) {
        cin >> x;
        int idx = find(x);
        // cout << "idx: " << idx << '\n'; 
        if(nums[idx] == x){
            b[i] = cnt[idx];
        }
    }
    
    // for(int i = 1; i <= m; i ++) cout << b[i] << " ";
    // cout << '\n';
    
    for(int i = 1, x; i <= m; i ++){
        cin >> x;
        int idx = find(x);
        if(nums[idx] == x){
            c[i] = cnt[idx];
        }
    }
    
    int maxv = -1, maxid = -1;
    
    for(int i = 1; i <= m; i ++){
        if(b[i] > maxv){
            maxv = b[i], maxid = i;
        }else if(b[i] == maxv){
            if(c[i] > c[maxid]) maxid = i;
        }
    }
    
    cout << maxid << '\n';
    
    
    return 0;
    
}